// 监听来自消息
console.log('background 运行了 ...');
chrome.runtime.onMessage.addListener(function(request, sender, sendResponse)
{
	console.log(request);
	if(request.hasOwnProperty("cmd")){
		switch (request.cmd) {
			case "listen":
				//参考文档：https://www.jianshu.com/p/e302c06b1abd
				let filterUrlRule = ["<all_urls>"];
				if(request.hasOwnProperty("value")){
					if(request.value.hasOwnProperty("filterUrlRule")){
						if(typeof request.value.filterUrlRule === 'string'){
							filterUrlRule = [request.value.filterUrlRule];
						}else if (Object.prototype.toString.call(request.value.filterUrlRule) === '[object Array]'){
							filterUrlRule = request.value.filterUrlRule;
						}
					}
				}
				console.log("拦截信息："+filterUrlRule.join(","))
				//因为manifest_version版本的问题webRequestBlocking目前还用不起，无法访问外网，所有这个问题留到以后处理
				chrome.webRequest.onBeforeRequest.addListener (
					function(details) {
						console.log(details);
						return {cancel: true};// 回调返回一个对象，如果对象里得cancel为true则会拦截不继续请求
					},
					{
						urls: filterUrlRule, //监听页面请求,你也可以通过*来匹配,比如：*://*.bdstatic.com/*"、 <all_urls> 代表所有网址
						//types: ["image"] //types请求资源类型
					},
					["blocking"]
				);
				sendResponse('我是 background.js，已经开始拦截监听：' + JSON.stringify(request));
				//从所有的request中删除User-Agent的header
				// chrome.webRequest.onBeforeSendHeaders.addListener(
				//     function(details) {
				//         for (var i = 0; i < details.requestHeaders.length; ++i) {
				//             if (details.requestHeaders[i].name === 'User-Agent') {
				//                 details.requestHeaders.splice(i, 1);
				//                 break;
				//             }
				//         }
				//         return {requestHeaders: details.requestHeaders};
				//     },
				//     {urls: ["<all_urls>"]},
				//     ["blocking", "requestHeaders"]);
				break;
			default:
				alert("暂不支持当前命令："+request.cmd);
		}
	}else {
		sendResponse('我是 background.js，已收到你的消息：' + JSON.stringify(request));
	}
});
